1. Field of the Invention
The present invention generally relates to parallel processing systems, and more particularly to a multi-user parallel processing system which is applicable to a parallel computer system in which a plurality of processing units are connected.
2. Description of the Related Art
In the parallel computer system in which a plurality of processing units are connected, a data transfer which transfers data stored in a main storage of a first processing unit to a second processing unit is carried out relatively frequently. Conventionally, the queuing of the data transfers with respect to the second processing unit is managed by a supervisor program (operating system) of the first processing unit. Accordingly, when the user makes a data transfer request with respect to the supervisor program of the first processing unit, a user program generates an interrupt with respect to the supervisor program, and the supervisor program instructs the data transfer depending on the interrupt.
However, according to the above conventional method, the overhead becomes large because the interrupt is frequently generated by the data transfer request. In addition, no consideration was made to cope with the case where a plurality of users exist.
Hence, it is conceivable to prevent the overhead from becoming large by making the supervisor program intervene every time the data transfer request is made. According to this conceivable method, a write pointer and a read pointer are provided in the queue of the data transfer requests. These pointers are managed directly by the user program, and the access is made with respect to the main storage of each processing unit using one virtual space. The data transfer is made in units of one packet which is made up of a header and body data, where the header includes the destination of the data, the data length and the like. The queue of the data transfer requests corresponds to a list of the headers, and each pointer indicates a position within this list.
However, according to the conceivable method described above, there is only one virtual space which is accessible by the user program. For this reason, an address translation table which is managed by the operating system of each processing unit and is used to translate a logical address into a real address must be rewritten every time the user changes and the user program is switched. In other words, it becomes necessary to load the address translation table every time the user program is switched, and the operating systems of the processing units related to the data transfer must exchange information that is related to the switching of the user program. In addition, because of the need to rewrite the address translation table every time the user program is switched, the user program cannot be switched unless all data transfers related to one user program end.
Therefore, the overhead caused by the switching of the user program is large according to the conceivable method described above, and there is a problem in that the processing performance of the system deteriorates. This problem occurs because of the fact that the conventional parallel computer system is designed on the precondition that one user program is executed for one user, and is not designed for the case where a plurality of users exist and the user program is executed by switching from one user program to another.